package com.team.engine.basedao;

import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Repository;


/**
 * 公共dao操作类，由具体的表实体dao操作类来继承，
 * 此类将自动获得表名，Id字段名，实现基本的增删改查操作 <br/>
 * 注：泛型参数必须填写
 * @author MengLH
 * @data 2010-8-24
 * @param <T> 表实体类
 * @param <ID> 表Id字段类型
 */
public abstract class CommonDao<T extends BaseEntity, ID> extends BaseDaoOperate<T, ID> {

	/**
	 * 解析泛型参数 T 的类信息
	 */
//	public CommonDao(){
//		Class<T> c =  (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0].getClass();
//		super.clazz = c;
//		super.className = clazz.getSimpleName();
//		
//		Field[] fields = clazz.getDeclaredFields();
//		for(Field f: fields){
//			if(f.getName().toUpperCase().lastIndexOf("ID") > -1){
//				super.idName = f.getName();
//				super.idField = f;
//				break;
//			}
//		}
//	}
	
}
